1. The Field of the Invention
The present invention relates to rendering graphical images having a three-dimensional appearance on a computer display screen. In particular, the present invention relates to systems and methods for displaying moving polygons on a computer display screen using a technique whereby the values of display parameters to be used with pixels on the display screen are repeatedly interpolated and adjusted to provide the appearance of smooth motion.
2. The Prior State of the Art
As computers have become more powerful and widely used during recent years, one application of computers that has become increasingly valuable is the rendition of objects on computer display screens. Displaying images of objects on computer display screens has been used in computer-aided design and manufacture, computer modeling of objects, the internet, computer games, and many other areas. One particularly valuable technique of displaying objects involves generating an image that is perceived by the human eye as having depth and other three-dimensional features.
A known method for graphically modeling an object in preparation for displaying a three-dimensional image of the object involves approximating the curvature of the object with a series of adjacent polygons whose vertices lay on the object's surface. For example, FIG. 1 illustrates a simple object that is modeled by arraying a series of polygons on the surface thereof. Object 10 has been divided into a set of triangles (including triangles 12, 14, 16, 17, 18, and 19) in accordance with this technique. The coordinates of the vertices of the triangles and other polygons may be stored in a computer-readable medium so that a computer may display the image of object 10, with the option of manipulating the coordinates to simulate motion or other dynamic modeling of the object. Prior to being rendered on a flat display, these triangles and other polygons of FIG. 1 are typically projected into a two-dimensional perspective, since the pixels of computer display screens exist in two dimensions Methods of displaying polygons or other objects on a display screen typically involve the use of computer-executable code that interprets the vertex coordinate information stored in the computer-readable medium or other information defining the object and transforms the information into signals causing appropriate pixels on a display screen to be lighted
Conventional methods of simulating motion of an object, such as object 10 of FIG. 1, have limitations that frequently give the object a jumping and non-continuous appearance. The limitations of such methods can be understood in reference to FIGS. 2a-2b and 3a-3e, which illustrate an example of displaying motion of a triangle on a computer display screen. FIG. 2a illustrates triangle 100a as defined in a coordinate system existing on a computer-readable medium at a selected point in time. The coordinate system has integer values that correspond to pixels on the computer display screen on which triangle 100a is to be displayed. At this instant depicted in FIG. 2a, triangle 100a has vertex 102a at (2.00, 0.25), vertex 104a at (4.00, 3.25), and vertex 106a at (5.00, 1.75). When triangle 100a is modeled in three dimensions, there will also be a z-coordinate value for each vertex, but for purposes of clarity, the z-coordinate values are not identified herein. Moreover, each vertex is associated with one or more pixel display parameters that dictate the display properties of the pixels on the computer display screen when the vertices of triangle 100a are depicted thereon. In this example, vertices 102a, 104a, and 106a have a generic pixel display parameter of d.sub.1, d.sub.2, and d.sub.3, respectively. Typically, vertices or other points to be displayed on a computer display screen have pixel display parameters of r, g, b (red, green, and blue color parameters), a (transparency or opacity parameter), and u, v, w (texture and depth parameters).
FIG. 2b further illustrates triangle 100a having been subjected to lateral motion over time. During selected increments of time, triangle 100a has been successively transformed in the computer-readable medium to triangles 100b, 100c, and 100d. The motion of triangle 100a to triangle 100b has been generated by incrementing the y-coordinate of each vertex by 0.25. Likewise triangles 100c and 100d have been defined in the computer-readable medium by incrementing the y-coordinates of the vertices of the preceding triangles by 0.25.
FIGS. 3a-3e illustrate a conventional method by which the successive triangles 100a-100d of FIG. 2b are displayed on a computer display screen 210. Because display screen 210 has pixels only at positions that correspond to integer coordinates of the coordinate system of FIGS. 2a and 2b, the coordinates of the vertices of triangles 100a-100d are rounded to the nearest integer. In this manner, the vertices are "snapped" into the integer pixel positions of FIGS. 3a-3e. In addition, the pixel display parameters d.sub.1, d.sub.2, and d.sub.3, are mapped directly to the pixels to which the associated vertices are snapped.
In FIG. 3a, vertex 102a (2.00, 0.25) has been snapped to pixel 202a having pixel coordinates of (2, 0). In addition, pixel 202a has a display property d.sub.1 that directly corresponds to pixel display parameter d.sub.1 of vertex 102a. It is noted that snapping vertex 102a to pixel 202a sacrifices some resolution, since the precise y-coordinate value 0.25 of vertex 102a is rounded to a y-coordinate 0 of pixel 202a However, since the pixels exist only at integer coordinates, some loss of static resolution is unavoidable. Pixels 204a and 206a are also lighted in the same way as pixel 202a. In addition, the computer-executable code that enables the display of triangle 100a may identify and light the pixels 208a that are bounded by line segments connecting pixels 202a, 204a, and 206a. In this manner, triangle 100a is displayed on display screen 210, albeit with some loss of resolution.
FIGS. 3b-3e further illustrate display screen 210 on which triangles 100b-100d, respectively, are rendered. The method for selecting the identity and the display properties of the pixels are the same as that described in reference to FIG. 3a. It is noted that the pixel displays 220a-220c of FIGS. 3a-3c, which correspond to triangles 100a-100c, are identical. Although the precise coordinates of the vertices of triangles 100a-100c have changed over time, the identity and the display properties of the corresponding pixels at the integer positions of display screen 210 are completely unchanged. It is further noted that pixel display 220d of FIG. 3d, which corresponds to triangle 100d, has undergone significant change when compared to the previous pixel display 220c of FIG. 3c.
These observations are illustrated in FIG. 3e, which shows a composite of pixel displays 220a-220d. As triangles 100a-100d undergo relatively smooth motion in the computer-readable medium, the corresponding pixels of pixel displays 220a-220d are not adjusted in any way except for undergoing an abrupt, integer pixel jump between display 220c of FIGS. 3c and display 220d of FIG. 3d. When many such triangles or other polygons are combined to model an object in three dimensions, the resulting jumping motion can be noticeable and distracting to the viewer. However, as illustrated in the foregoing example, the prior art methods of simulating motion of a polygon have no way of minimizing the effects of such jumping motion between integer pixel positions.
In view of the foregoing, there is a need in the art for systems and methods for rendering a moving image of a polygon that reduces the jumpiness that has been experienced according to the prior art techniques. In particular, it would be an advancement to provide systems and methods for rendering the moving polygons in such a way that the integer jumps between pixels are masked and the appearance of motion is smoother than has been previously possible.